SimpleDate is a small, fast calendar application that can be invoked and dismissed with a minumum of fuss. Its primary feature is the ability to display multiple calendars for any month from the years 1 to 2500 A.D. It can display multiple months (one window per month) at a time, and its month displays can be resized to taste. The current day may be highlighted in SimpleDate’s calendars, and users can choose between Sunday-first or Monday-first week displays. Complete balloon help is available.
Well, there is one frill in SimpleDate — you can choose between four different calendar “styles.” In addition, you can copy the current month onto the clipboard either as tab-delimited text or as a picture. The latter feature is particularly useful if you want to paste “pretty” calendars into your other documents. It can also be used to print any calendar month, as SimpleDate itself does not have any built-in printing capabilities.
SimpleDate comes as a fat binary, so it should run native either on 680x0 or PowerPC Macintoshes without any additional intervention from you.
A note on SimpleDate’s expanded date range. As you may know, our current calendar system has not always been the calendar system. The Gregorian calendar, which is what we use today (and which is what the Mac OS, and thus SimpleDate, uses for its internal calendar calculations), was not adopted until 1582. Thus, only dates from around 1582 to the present are truly accurate, in terms of the weekdays under which dates fall. In fact, the adoption of the Gregorian calendar caused some ten days in 1582 to fall entirely out of existence (which makes for great historical trick questions!). The primary difference between today’s Gregorian calendar and its predecessor, the Julian calendar, is that for century years, only those evenly divisible by 400 are leap years. The Julian system, which was in use from circa 44 BC until 1582, made no exceptions with leap years — all years divisible by four had 29 days in February. So keep this in mind when you’re checking out dates before 1582 — SimpleDate will be a few days off the “real” historical calendar.
Version History
I would like to thank everyone who has responded to SimpleDate so far. Subsequent versions are largely the results of your many suggestions and comments.
Changes in Version 1.4:
• fixed a sneaky little bug that occurred whenever the current day was the 31st and the user jumped to a month with less than 31 days (thanks to Steve Brookner for noticing this — good catch!)
• standardized all dialog and alert boxes so that they are centered on the parent window’s screen
• refined the Go to… dialog box to monitor the contents of the year field more intelligently
• corrected some bugs in the documentation/on-line help that still said that SimpleDate’s dates range from 1904 to 2039
Changes in Version 1.3.1:
• corrected a bug that caused bogus AppleEvent error messages when running SimpleDate while recording an AppleScript with Script Editor 1.1.1
Changes in Version 1.3:
• made SimpleDate’s highlight color (for the current day) use the Highlight Color in the Color control panel
• moved SimpleDate colors to ResEdit-changeable resources in the SimpleDate Preferences file
(see SimpleDate Colors below for more information on the first two changes)
• extended SimpleDate’s years to range from 1 to 2500 A.D.
• optimized SimpleDate’s code for size
• fixed various bugs that caused crashes on Macs that do not have Color QuickDraw
• made SimpleDate remember multiple window positions (see Multiple Window Support below)
• added “Previous Month” and “Next Month” items to the menu bar
• improved SimpleDate’s handling of low memory conditions
Thanks very much to Tony Wight for helping me finally squash the bugs in SimpleDate that caused it to not work properly on Macs without Color QuickDraw. Thanks also to Lance Chun and Pete Resnick for their great color-handling and optimization suggestions.
With SimpleDate 1.3, the Highlight Color in the Color control panel now controls SimpleDate’s current day color instead of the current SimpleDate calendar style, making it very easy to modify it to your liking (and also making SimpleDate’s highlighting scheme consistent with those of other applications). Other colors are stored as resources in the SimpleDate Preferences file, and so are now editable to those who know how to use ResEdit. In addition, I am aware that the best solution to the color scheme situation is to create user-settable preferences for colors. However, I hesitate to implement such preferences because they will inflate SimpleDate significantly. For now, at least, SimpleDate’s colors are no longer embedded in the code.
System Requirements
SimpleDate requires a Macintosh with System 7 or greater. It has been explicitly and successfully tested on the following systems: PowerBook 5300c w/ System 7.5.3, Macintosh SE/30 w/ System 7.1, Macintosh IIci w/ System 7.0, Quadra 660av w/ System 7.1, Performa 636 w/ System 7.5, PowerBook Duo 280c w/ System 7.5.1, Power Macintosh 7100/80 with System 7.5.1, Power Macintosh 7200/90 with System 7.5.2, and Power Macintosh 8500/120 with System 7.5.3.
User Guide
SimpleDate is capable of opening multiple calendar windows, each set to any month ranging from January, 1 A.D. to December 2500 (see my note on calendar systems at the beginning of this file). The following paragraphs summarize the various controls, commands, and options in SimpleDate. SimpleDate also has extensive balloon help (in System 7 or greater), so you can get most of the information below by choosing “Show Balloons” from the Help menu.
Multiple Window Support
SimpleDate has the ability to save multiple window settings and positions each time SimpleDate is run. For example, if you have positioned three calendar windows on your screen, showing the previous month, this month, and the next month respectively, quitting from SimpleDate will preserve the positions and relative month settings of these windows, so that they will appear again the next time that you run SimpleDate.
In addition to the window position/size and relative month of each calendar, the style for that calendar is restored also. When multiple windows are opened and saved between SimpleDate sessions, styles behave a little differently from when only one window is open. When only one window is open at SimpleDate’s startup, that window is always opened in the default style specified in the Preferences dialog box. However, when multiple windows are opened, each window uses the style that it had in a previous SimpleDate session.
One thing that does not get restored is the alternative size that can be toggled by clicking on the Zoom box. When a window is opened to a previous position and size, that size is always set to be the user-defined size, and clicking on the Zoom box at that moment will always bring the window to the standard SimpleDate size.
SimpleDate Colors
Another change to SimpleDate is the way it handles colors. The color used for highlighting the current day is now the Highlight Color in the Color control panel. In addition, other color settings have been moved to ‘pltt’ resources in the SimpleDate Preferences file that can be modified using ResEdit.
Setting the Highlight Color is easy enough — set it in the Color control panel. To change SimpleDate’s other colors, use ResEdit to change the appropriate ‘pltt’ for the style that you wish to modify. If you have used previous versions of SimpleDate, run it first and then quit so that the appropriate resources can be copied to the SimpleDate Preferences file in the Preferences folder. Modifying resources with ResEdit is not recommended for users who are not familiar with Mac OS’s resource forks. Thus, the procedure for changing colors other than the Highlight Color is not documented further. However, users with sufficient knowledge of resources and ResEdit will find that modifying the ‘pltt’ resources is straightforward.
Window Controls
A calendar window in SimpleDate has the following controls and functions:
Close box: Dismisses the calendar window. When the last calendar window is closed, SimpleDate quits (this is done to mimic the behavior of a desk accessory).
Zoom box: Toggles between the standard calendar size and the user-defined size, as set by the Resize box. SimpleDate’s standard calendar size is the minimum size that is permitted when manually resizing a window using the Resize box.
Resize box: Drag the mouse here to resize the calendar window.
Scroll bar: Moves the calendar across months. The arrows move one month at a time, while the gray regions move one year at a time.
This Month button: Jumps the calendar immediately to the current month.
Go to… button: Opens a dialog box for immediate access to any month from 1 to 2500 A.D. Choose the desired month from the pop-up menu and enter the year into the text field.
Keyboard Shortcuts
The following keyboard shortcuts can be used within a calendar window:
move to the previous month up arrow, delete key
move to the next month down arrow, space bar
move back one year page up, option-up arrow
move forward one year page down, option-down arrow
move to January, 1 A.D. home, cmd-up arrow
move to December 2500 end, cmd-down arrow
Menu Commands
The following functions are available via menu commands:
File Menu
New: Opens a new calendar window.
Close: Closes the frontmost calendar window. Closing the last calendar window will quit the program.
Page Setup…, Print…: Disabled, because SimpleDate does not have any printing features. Use the Copy and Copy as Picture commands instead.
Quit: Quits from SimpleDate.
Edit Menu
Undo, Cut, Paste, Clear, Select All: Disabled, because these operations are not applicable to a calendar window. However, Cut and Paste are usable for editing text in the Go To… dialog box.
Copy: Copies the current content of the frontmost calendar window onto the clipboard. This command copies both text and picture representations of the current month onto the clipboard; use this to paste a tab-separated text representation of the current month into a word processor. This technique can be used to generate a printout of the current month — simply paste that month into a print-capable application, and print it from there.
Copy as Picture: Copies the current content of the frontmost calendar window onto the clipboard, solely as a picture or graphic. This command copies only a pictorial representation of the calendar onto the clipboard; use this to paste (and print) calendar months with the exact visual appearance that they have in SimpleDate. This feature permits you to print out SimpleDate months using the aesthetic calendar style of your choice.
Preferences: Opens a dialog box that permits the user to set certain SimpleDate defaults. These defaults are explained below.
Default Style
The Default Style setting determines the style that will be assigned to new calendar windows, including the calendar window opened when SimpleDate starts up. The styles shown are the same as those available in the menu bar, except for one: Previous Window’s Style will set the style of new calendar windows to the style of the most recent active calendar window.
Note that when multiple windows are saved then opened during startup, the Default Style setting behaves a little differently. With multiple windows, each window always opens in the style that it had in a previous SimpleDate session. New windows will then follow the Default Style setting.
Highlight Today’s Date on Calendar
SimpleDate can now highlight today’s date on the calendar. This check box determines whether or not this feature should be enabled. When off, SimpleDate does not indicate which day represents today on the calendar. The color used to highlight today’s date is the Highlight Color shown in the Color control panel.
First Day of Week
In some countries, the convention for a monthly calendar displays Monday as the first day of the week. Use this option to set your preferred first day accordingly.
In addition to these options, the dialog box has a Defaults button which resets the preferences to the standard set that SimpleDate uses when it is run for the first time.
Calendar
This Month: Moves the active window’s calendar to the current month. This is the same as clicking on that window’s This Month button.
Previous Month: Moves the active window’s calendar to the previous month. This is the same as clicking on the up arrow of that window’s scroll bar, or as pressing the Up Arrow key.
Next Month: Moves the active window’s calendar to the next month. This is the same as clicking on the down arrow of that window’s scroll bar, or as pressing the Down Arrow key.
Go to…: Opens a dialog box that permits the user to jump to any date between 1 and 2500 AD. This is the same as clicking on the Go to… button of that window.
Style
Standard, Black & White, Chiseled, High Tech: Changes the visual appearance of the frontmost calendar window to the corresponding style. Hope you like them!
Known Problems
SimpleDate has been improved to handle low-memory conditions better; however, until further testing has been done by a wide variety of users on a wide variety of platforms, I won’t quite close the book on the issue yet. Fortunately, low memory conditions in SimpleDate only arise when a large number of calendar windows is open; in my testing, you do not hit a potential low memory situation until you have more than 12 windows open at a time. If you do want to have a lot of calendar windows open at one time, increase SimpleDate’s Preferred Size memory requirement from its Get Info window in the Finder.
Credits
Many thanks to my beta testers (in alphabetical order): Herman Atienza, Christine Chih, Christina Chu, Chris Larson, the Lombos brothers, Rolly Maiquez, Dr. Ricky Taira, and Anissa Vicente.
Thanks also to those who have taken the time to report bugs and problems to me: Sister Gilberte Baril, David Bishop, Steve Brookner, William Chesney, Lance Chun, Pete Resnick, and Tony Wight.
En grande thanks go to Chris Larson for much technical and religious guidance. You can add “Jedi master” to your “Amateur Macintosh Geek” title now…
Legal & Contact Information
SimpleDate is volunteerware — that is, you are free to provide any kind of positive reinforcement to the programmer (grin) if you like his software. But seriously, at the very least, I would very much appreciate a short e-mail message if you like SimpleDate and have decided to use it for yourself. This at least gives me an idea of how it is being received out there.
I give my permission to include SimpleDate in any freeware or shareware CD. However, please inform me of your intention, so that I can keep track of which CDs contain my software.
Please direct all correspondence concerning SimpleDate to: dondi@cs.ucla.edu. Enjoy!